﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Imaging;

namespace HaierCADplug_in.ViewModel
{
    public class CollectWindowViewModel
    {
        //动态图像集合在添加或删除项时会自动通知绑定的 UI 元素进行更新。这使得 UI 可以自动刷新以反映数据的变化
        public ObservableCollection<ImageData> Images { get; set; }
        //视图层定义的命令
        public ICommand ToggleFavoriteCommand { get; private set; }

        //构造函数
        public CollectWindowViewModel()
        {
            Images = new ObservableCollection<ImageData>();
            //视图层定义的命令所执行的方法
            ToggleFavoriteCommand = new RelayCommand(ToggleFavorite);
            LoadImages(); // 假设你有一个加载图片的方法
        }

        private void ToggleFavorite(object parameter)
        {
            //检查 parameter 是否是 ImageData 类型的实例。如果是，它将 parameter 强制转换为 ImageData 类型，并将其赋值给局部变量 imageData。
            if (parameter is ImageData imageData)
            {
                imageData.IsFavorited = !imageData.IsFavorited;
            }
        }

        private void LoadImages()
        {
            string directoryPath = "D:\\Leaning\\Picture";
            var imageLoader = new ImageData(); // 使用 ImageData 来加载图像
            imageLoader.LoadImages(directoryPath);
            foreach (var img in imageLoader.Images)
            {
                Images.Add(img);
            }
        }
    }

}
